AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-3225420

Programming_Learner_DK's questions

Martin Hope
Python_Learner
Asked: 2024-10-23 23:50:14 +0800 CST

如何格式化 Graph API 调用来更新 Excel 单元格?

  • 5

我想使用 Microsoft Graph API 更新 Excel 单元格值(托管在 SharePoint 中)。文档在此处。

我已经使用类似于下面的格式成功进行了其他 API 调用(格式更新、清除单元格),请帮助我理解我做错了什么。

在代码示例中,我想将“41373”写入工作表“Plant_3”中的单元格 B:17。代码示例返回400代码错误:

"code": "InvalidAuthenticationToken",
"message": "Access token is empty.",

此消息可能很笼统,表示 API 调用的格式错误,而不是身份验证问题。其他 Graph API 调用也使用相同的格式id,keys因此我怀疑这不是身份验证问题。

def graph_config_params():
    """
    read authentication parameters from config file, return dict with results
    :return: (dict) configuration parameters
    """
    try:
        # Read the config file
        config = configparser.ConfigParser()
        config.read('config.ini')
        # assign authorization tokens from config file to variables
        return_dict = {'client_id': config['entra_auth']['client_id'],
                       'client_secret': config['entra_auth']['client_secret'],
                       'tenant_id': config['entra_auth']['tenant_id'],
                       # Get necessary configuration data for the SharePoint file
                       'site_id': config['site']['site_id'],
                       'document_library_id': config['site']['document_library_id'],
                       'doc_id': config['site']['doc_id'],
                       'drive_id': config['site']['drive_id']}
        return return_dict
    except Exception as e:
        log.exception(e)    
def set_up_ms_graph_authentication(graph_auth_args=graph_config_params()):
    """
    Create headers with access token for Microsoft Graph API to authenticate
    :param graph_authentication_params:
    :return: (dict) headers with access token
    """
    try:
        # Set up Microsoft Graph authentication
        msal_scope = ['https://graph.microsoft.com/.default']
        msal_app = ConfidentialClientApplication(
            client_id=graph_auth_args['client_id'],
            authority=f"https://login.microsoftonline.com/{graph_auth_args['tenant_id']}",
            client_credential=graph_auth_args['client_secret'])
        result = msal_app.acquire_token_silent(scopes=msal_scope,
                                               account=None)
        if not result:
            result = msal_app.acquire_token_for_client(scopes=msal_scope)
        if 'access_token' in result:
            access_token = result['access_token']
        else:
            raise Exception("Failed to acquire token")
        # Prepare request headers with the acquired access token
        headers = {'Authorization': f'Bearer {access_token}'}
        # log.info(f'headers: {headers}')
        return headers
    except Exception as e:
        log.exception(e)    
sheet = 'Plant_3'
# get variables that work in other Graph API calls
config_args=graph_config_params()
# get Authorization Bearer token, again works in other Graph API calls.
my_headers = set_up_ms_graph_authentication()
url=  f"https://graph.microsoft.com/v1.0/sites/{config_args['site_id']}/drives/{config_args['drive_id']}/items/{config_args['doc_id']}/workbook/worksheets/{sheet}/range/(address='B:17')"
response = requests.patch(url,
                          headers=my_headers,
                          json={'values': [['41373']] })

我尝试过的事情:

  • 将关键字参数从 切换json为data。
  • json在和 中,“41373” 周围都有单括号 / 无括号data。
  • 已验证权限,已删除Files.ReadWrite.All并出现403错误。
  • 切换“补丁”post并尝试上述所有配置。
  • 添加valueType参数:[['String']]
  • 1 个回答
  • 46 Views
Martin Hope
Programming_Learner_DK
Asked: 2024-08-24 21:45:49 +0800 CST

如何去掉图表上的标记?

  • 5

无论我如何努力去掉这个标记,它都会在我的图表上存在。我尝试过关闭刻度、刻度标签、网格线和许多其他东西,但都没有成功。

图表中莫名其妙地出现白色像素

包含图表创建的完整代码,如果我确切知道哪部分代码导致了这个问题,我会包含更简化的代码。

import matplotlib.pyplot as plt

plt.style.use('dark_background')
my_figure = plt.figure(**{'dpi': 100.0,
                          'edgecolor': 'black',
                          'facecolor': 'black',
                          'figsize': (8.0, 6.0),
                          'linewidth': 1.0})
my_figure.suptitle(**{'fontsize': 'x-large',
                      'fontweight': 'semibold',
                      'horizontalalignment': 'center',
                      't': 'Boxplot',
                      'verticalalignment': 'top'})
my_figure.supxlabel(**{'fontsize': 'large',
                       'fontweight': 'normal',
                       'horizontalalignment': 'center',
                       't': 'values',
                       'verticalalignment': 'bottom'})
my_figure.supylabel(**{'fontsize': 'large',
                       'fontweight': 'normal',
                       'horizontalalignment': 'center',
                       't': 'values',
                       'verticalalignment': 'bottom'})
axes_dictionary = my_figure.subplot_mosaic(mosaic=[['boxplot'], ['histogram'], ['histogram'], ['histogram']]
                                           , gridspec_kw={'wspace': 0.0, 'hspace': 0.0})
axes_dictionary['boxplot'].bxp(**{'boxprops': {'alpha': 0.8, 'facecolor': 'C0'},
                                  'bxpstats': [{'label': 'obs5',
                                                'mean': 74.00224000000001,
                                                'med': 74.004,
                                                'q1': 73.996,
                                                'q3': 74.009,
                                                'whishi': 73.984,
                                                'whislo': 74.014}],
                                  'capprops': {'color': 'C0'},
                                  'patch_artist': True,
                                  'positions': [0],
                                  'showfliers': False,
                                  'vert': False,
                                  'whiskerprops': {'color': 'C0'},
                                  'widths': 0.5,
                                  'zorder': 1.0})
axes_dictionary['histogram'].hist(**{'align': 'mid',
                                     'alpha': 0.6,
                                     'bins': [73.98100280761719,
                                              73.98699951171875,
                                              73.99299621582031,
                                              73.9990005493164,
                                              74.00499725341797,
                                              74.01100158691406,
                                              74.017],
                                     'color': 'C0',
                                     'histtype': 'bar',
                                     'label': 'obs5',
                                     'orientation': 'vertical',
                                     'weights': [1, 3, 5, 6, 6, 4],
                                     'x': [73.98100280761719,
                                           73.98699951171875,
                                           73.99299621582031,
                                           73.9990005493164,
                                           74.00499725341797,
                                           74.01100158691406],
                                     'zorder': 0.0})
axes_dictionary['histogram'].set_xticks(
    ticks=[73.98100280761719, 73.98699951171875, 73.99299621582031, 73.9990005493164, 74.00499725341797,
           74.01100158691406, 74.017])
axes_dictionary['histogram'].set_xticklabels(
    labels=[73.98100280761719, 73.98699951171875, 73.99299621582031, 73.9990005493164, 74.00499725341797,
            74.01100158691406, 74.017])
axes_dictionary['histogram'].set_yticks(ticks=axes_dictionary['histogram'].get_yticks())
axes_dictionary['histogram'].set_yticklabels(labels=['', '1', '2', '3', '4', '5', '6', '7'])
axes_dictionary['boxplot'].set_xlim(**{'left': 73.97920303344726, 'right': 74.01879806518555})
axes_dictionary['boxplot'].tick_params(**{'labelbottom': False,
                                          'labelleft': False,
                                          'labelright': False,
                                          'labeltop': False})
axes_dictionary['boxplot'].spines['left'].set_visible(False)
axes_dictionary['boxplot'].spines['bottom'].set_visible(True)
axes_dictionary['boxplot'].spines['top'].set_visible(False)
axes_dictionary['boxplot'].spines['right'].set_visible(False)
axes_dictionary['boxplot'].tick_params(**{'axis': 'x',
                                          'bottom': False,
                                          'color': 'white',
                                          'direction': 'inout',
                                          'length': 3.0,
                                          'pad': 7.0,
                                          'top': False,
                                          'which': 'major',
                                          'width': 1.0,
                                          'zorder': 1.0})
axes_dictionary['boxplot'].tick_params(**{'axis': 'x',
                                          'bottom': False,
                                          'color': 'white',
                                          'direction': 'inout',
                                          'length': 5.0,
                                          'pad': 4.0,
                                          'top': False,
                                          'which': 'minor',
                                          'width': 5.0,
                                          'zorder': 1.0})
axes_dictionary['boxplot'].tick_params(**{'axis': 'y',
                                          'color': 'white',
                                          'direction': 'out',
                                          'left': False,
                                          'length': 3.0,
                                          'pad': 7.0,
                                          'right': False,
                                          'which': 'major',
                                          'width': 1.0,
                                          'zorder': 1.0})
axes_dictionary['boxplot'].tick_params(**{'axis': 'y',
                                          'color': 'white',
                                          'direction': 'inout',
                                          'left': False,
                                          'length': 2.0,
                                          'pad': 4.0,
                                          'right': False,
                                          'which': 'minor',
                                          'width': 1.0,
                                          'zorder': 1.0})
axes_dictionary['boxplot'].grid(**{'axis': 'x', 'visible': False, 'which': 'major'})
axes_dictionary['boxplot'].grid(**{'axis': 'x', 'visible': False, 'which': 'minor'})
axes_dictionary['boxplot'].grid(**{'axis': 'y', 'visible': False, 'which': 'major'})
axes_dictionary['boxplot'].tick_params(**{'axis': 'y', 'labelbottom': True, 'which': 'major'})
axes_dictionary['histogram'].spines['left'].set_visible(False)
axes_dictionary['histogram'].spines['bottom'].set_visible(True)
axes_dictionary['histogram'].spines['top'].set_visible(False)
axes_dictionary['histogram'].spines['right'].set_visible(False)
axes_dictionary['histogram'].legend('', frameon=False)
axes_dictionary['histogram'].tick_params(**{'axis': 'x',
                                            'bottom': True,
                                            'color': 'white',
                                            'direction': 'inout',
                                            'length': 3.0,
                                            'pad': 7.0,
                                            'top': False,
                                            'which': 'major',
                                            'width': 1.0,
                                            'zorder': 1.0})
axes_dictionary['histogram'].tick_params(**{'axis': 'x',
                                            'bottom': False,
                                            'color': 'white',
                                            'direction': 'inout',
                                            'length': 5.0,
                                            'pad': 4.0,
                                            'top': False,
                                            'which': 'minor',
                                            'width': 5.0,
                                            'zorder': 1.0})
axes_dictionary['histogram'].tick_params(**{'axis': 'y',
                                            'color': 'white',
                                            'direction': 'out',
                                            'left': False,
                                            'length': 3.0,
                                            'pad': 7.0,
                                            'right': False,
                                            'which': 'major',
                                            'width': 1.0,
                                            'zorder': 1.0})
axes_dictionary['histogram'].tick_params(**{'axis': 'y',
                                            'color': 'white',
                                            'direction': 'inout',
                                            'left': False,
                                            'length': 2.0,
                                            'pad': 4.0,
                                            'right': False,
                                            'which': 'minor',
                                            'width': 1.0,
                                            'zorder': 1.0})
axes_dictionary['histogram'].grid(**{'axis': 'x', 'visible': False, 'which': 'major'})
axes_dictionary['histogram'].grid(**{'axis': 'x', 'visible': False, 'which': 'minor'})
axes_dictionary['histogram'].grid(**{'axis': 'y', 'visible': False, 'which': 'major'})
axes_dictionary['histogram'].tick_params(**{'axis': 'x', 'labelbottom': True, 'which': 'major'})
axes_dictionary['histogram'].tick_params(**{'axis': 'y', 'labelbottom': True, 'which': 'major'})
plt.show()
matplotlib
  • 1 个回答
  • 28 Views
Martin Hope
Programming_Learner_DK
Asked: 2024-03-01 01:03:39 +0800 CST

将 JSON 格式的 GSD 命令发送到 Zebra 打印机

  • 5

尝试使用 Python 向 Zebra 打印机发送命令(不是标签)。

在文档的第 574 页上显示: 在此输入图像描述

这是我的代码:

mysocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)          
host= "192.168.100.245" # verified IP address of Zebra printer
port = 9100
mysocket.connect((host, port)) 
name_string= '''"sgd.name":null'''
my_string= f'''{{}}{{{name_string}}}'''
x = json.dumps(obj=my_string)
mysocket.sendall(bytes(x,encoding="utf-8"))
data= mysocket.recv(1024)
print(data.decode('utf-8'))

打印机响应发送给它的 ping 和其他非 JSON Zebra 命令(即mysocket.send(b"~hs"))。但是,使用上面的代码我等待了很长时间并且打印机没有返回任何响应。

尝试了 JSON 格式的多种变体,接下来我应该尝试什么?

根据 @bruan 评论,我尝试了以下变体,但没有成功:

my_string= '''"sgd.name":null"'''

my_string= '''{}{"sgd.name":null}'''

python
  • 1 个回答
  • 17 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve