首页 > 解决方案 > 使用 python 从 msssql 服务器获取数据

问题描述

我正在尝试使用 python 从 mssql 服务器获取数据,其中一列带有 UUID。数据以字典列表的形式获取。并且第一列值,即第一个键的值具有 UUID 数据。

data = [{
  'AGENCY_ID': UUID('cbaf8fb4-7ada-4f4c-9726-fea39ed638f0'),
  'EINVOICE_CODE': '',
  'AGENCY_NAME': 'Zuru Inc.',
  'MAIN_PHONE_NUMBER': '',
  'FAX_NUMBER': '',
  'WEBSITE': '',
  'DEFAULT_BILLING_CYCLE_INT': 235,
  'DEFAULT_BILLING_CALENDAR_INT': 128,
  'DEFAULT_CASH_COMMISSION': 0.0,
  'DEFAULT_TRADE_COMMISSION': 0.0,
  'EXTERNAL_AGENCY_CODE': '',
  'MICR_CODE': '',
  'ROW_STATE': 1,
  'CREATE_DATE': datetime.datetime(2016, 10, 18, 15, 45),
  'CREATE_BY': 'ObjectServer_KIDS_APP01/ongh004:SWNA\\$woadmin:dbo',
  'UPDATE_DATE': datetime.datetime(2016, 10, 18, 15, 44, 59, 290000),
  'UPDATE_BY': 'ObjectServer_KIDS_APP01/ongh004:SWNA\\$woadmin:dbo',
  'UPDATE_COUNT': 0,
  'IS_PENDING': 0,
  'EI_EXPORT_TYPE': 6,
  'AGENCY_REPORTING_NAME': 'Zuru Inc.',
  'DUNS_NUMBER': '',
  'TCODE': '',
  'AGENCY_EXTERNAL_ID': '',
  'MAIN_ADDRESS_INT': 2250,
  'GLOBAL_AGENCY_ID': None,
  'STATION_ARRAY': b '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f',
  'LOCKBOX_PARENT_INT': None,
  'AGENCY_TYPE_INT': 774,
  'AGENCY_GROUP': '',
  'OVERRIDE_CASH_PAYMENT_TERMS_INT': None,
  'DEFAULT_OPTIONAL_EDI_CODES': ''
}]  

这就是我正在尝试的。

rec = [dict(row) for row in list]
for x in rec:
    print(x['AGENCY_ID'])

它给出了正确的打印值cbaf8fb4-7ada-4f4c-9726-fea39ed638f0

在将数据写入 JSON 文件时,它给出“无”来代替字符串更改的 UUID 数据。有什么方法可以让我在没有“无”的情况下写入数据并具有适当的值?

标签: python

解决方案


这是因为x[''AGENCY_ID]是类型UUID而不是字符串。您需要使用str函数将其转换为字符串。例如:

agency_id_str = str(x['AGENCY_ID'])


推荐阅读